1. Technical Field
The present disclosure relates to aligning tags to specific video frames and more specifically to aligning tags to intra-coded frames within a video frame sequence.
2. Introduction
With digital video users can tag an event. These tags, which can be tailored to individual preferences, allow users to make specific notes and associate those notes with specific pieces of the video. While tags take many forms, a common trait all tags have in common is being associated with a particular frame of the video. However not all frames of digital video are created equal.
With analog video, each individual video frame contains the entirety of the displayed image. This makes data compression in analog video difficult, while making differentiation between frames depend on a frame rate for the displayed video. With digital video, many of these issues disappear. Digital video utilizes three types of frames: intra-coded frames (or I-frames), predictive coded frames (P-frames), and bi-directionally predictive frames (B-frames). I-frames contain all the information needed to display an entire image, whereas P-frames contains incomplete image data (or none at all) and rely at least partially on information from the previous frame and B-frames rely on information from both the previous frame and the subsequent frame.
At present, as a user places tags into digital video the tags align with the frame corresponding to the moment a user has selected. This frame selected, however, is not always an I-frame. When a user then skips to a specific tag and the specific tag does not align with an I-frame the system either skips backward or skips forward to another I-frame in order to load a complete set of video frame data. Alternatively, the system, rather than skipping backward, can load the data associated with the previous I-frame and the intermediate frames between that I-frame and the location of the specific tag, making it appear that the video began playing precisely with the tagged location. These solutions are not optimal, requiring extra processing prior to playing the tagged video or shifting the starting time of the video.